<?php

namespace beepay\util;

class BeepayKit
{
    /**
     * 加签
     *
     * @param array $params 参与加签的数据
     * @param string $key 秘钥
     * @return string 签名
     */
    public static function getSign($params, $key)
    {
        $buff = '';
        ksort($params, SORT_STRING);
        foreach ($params as $k => $v) {
            if ($k == 'sign' || empty($k) || $k == '') {
                continue;
            }
            $buff .= $k . "=" . $v . "&";
        }
        $buff .= 'key=' . $key;
        return strtoupper(md5($buff));
    }

    /**
     * 校验出参数据签名是否正确
     *
     * @param array $data 参与加签的数据
     * @param string $sign 原始签名
     * @param string $apiKey 秘钥
     * @return bool
     */
    public static function checkSign($data, $sign, $apiKey)
    {
        if ($data == null && empty($sign)) return true;
        return $sign == self::getSign($data, $apiKey);
    }
}